package 面向对象_上.k构造器;

/*
 * 类的结构之三:构造器(构造方法、constructor)的使用
 * constructor:
 *
 * 一、构造器的作用:
 * 1.创建对象
 * 2.初始化对象的属性
 *
 * 二、说明
 * 1.如果没有显示的定义类的构造器的话，则系统默认提供一个空参的构造器。
 * 2.定义构造器的格式:
 * 			权限修饰符  类名(形参列表) { }
 * 3.一个类中定义的多个构造器，彼此构成重载。
 * 4.一旦显示的定义了类的构造器之后，系统不再提供默认的空参构造器。
 * 5.一个类中，至少会有一个构造器
 */

/* 2.在前面定义的 Person 类中添加构造器，
 * 利用构造器设置所有人的 age 属性初始值都为 18。
 */
/* 3.修改上题中类和构造器，增加 name 属性,
 * 使得每次创建 Person 对象的同时初始化对象的 age 属性值和 name 属性值。
 */
public class PersonTest {

    public static void main(String[] args) {
        //创建类的对象:new + 构造器
        Person p = new Person();	//Person()这就是构造器

        p.eat();

        Person p1 = new Person("Tom");
        System.out.println(p1.name);

        /* 2.在前面定义的 Person 类中添加构造器，
        * 利用构造器设置所有人的 age 属性初始值都为 18。
        */
        Person p2 = new Person();

        System.out.println("年龄为:" + p2.getAge());
    }
}
class Person{
    //属性
    String name;
    int age;

    //构造器
    public Person(){
        age = 18;
//        System.out.println("Person()......");
    }

    public Person(String n){
        name = n;
    }

    public Person(String n,int a){
        name = n;
        age = a;
    }

    //方法
    public void eat(){
        System.out.println("人吃饭");
    }

    public void study(){
        System.out.println("人学习");
    }

    public int getAge(){
        return age;
    }
}
